package org.example.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 还款计划表
 * </p>
 *
 * @author libo
 * @since 2023-11-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("net_repay_plan")
public class NetRepayPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 产品id
     */
    private Integer productId;

    /**
     * 用户id
     */
    private Integer customerId;

    /**
     * 身份证号
     */
    private String certNo;

    /**
     * 加密身份证号
     */
    private String certNoEncrypt;

    private String orderId;

    /**
     * 总期数
     */
    private Integer actualPeriod;

    /**
     * 第几期
     */
    private Integer period;

    /**
     * 实际计算利率
     */
    private BigDecimal storeMonthRate;

    /**
     * 还款方式
     */
    private Integer repayType;

    /**
     * 借款总额
     */
    private BigDecimal amount;

    /**
     * 本期还款金额
     */
    private BigDecimal repayMoney;

    /**
     * 应还本金
     */
    private BigDecimal principal;

    /**
     * 应还利息
     */
    private BigDecimal interest;

    /**
     * 还款日
     */
    private Date repayday;

    /**
     * 0:未还；1:已还状态；2:提前还清；4:处理中；5:取消订单；10:预期状态；
     */
    private Integer state;

    /**
     * 应还本金总额
     */
    private BigDecimal sumPrincipal;

    /**
     * 应还利息总和
     */
    private BigDecimal sumInterest;

    /**
     * 实际还款日
     */
    private Date repidTime;

    private Date createTime;

    private Date updateTime;

    /**
     * 逾期天数
     */
    private Integer overdueDay;

    /**
     * 滞纳金，如果有逾期每天算
     */
    private BigDecimal overdueFee;

    private String opComment;

    private BigDecimal netFee;

    private BigDecimal foxFee;

    /**
     * 资方ID
     */
    private Integer capitalSide;

    /**
     * 代偿日期
     */
    private Date replaceDay;

    /**
     * 代偿金额
     */
    private BigDecimal replaceMoney;

    /**
     * 代偿状态 0:待代偿 1:已代偿 2:划扣代偿标记
     */
    private Integer replaceState;

    /**
     * 代扣状态：0未代扣  1已代扣
     */
    private Integer chargeState;

    private Date chargeDate;

    /**
     * 批次号
     */
    private String replaceBatch;

    /**
     * 代偿说明；
     */
    private String replaceRemark;

    /**
     * 资方分润
     */
    private BigDecimal capitalProfit;

    /**
     * 桔子分润
     */
    private BigDecimal juziProfit;

    /**
     * 投资人利息（仅招财猫资方使用）
     */
    private BigDecimal userInterest;

    /**
     * 应还担保费
     */
    private BigDecimal guaranteeFee;

    /**
     * 应还资方费用记0期
     */
    private BigDecimal capitalFee0;

    /**
     * 应还资方费用1
     */
    private BigDecimal capitalFee1;

    /**
     * 应还资方费用2
     */
    private BigDecimal capitalFee2;

    /**
     * 应还资方费用3
     */
    private BigDecimal capitalFee3;

    /**
     * 应还资方费用3
     */
    private BigDecimal capitalFee4;

    /**
     * 已还资方本金
     */
    private BigDecimal alreadyRepaidPrincipal;

    /**
     * 已还资方利息
     */
    private BigDecimal alreadyRepaidInterest;

    /**
     * 已还担保费
     */
    private BigDecimal alreadyRepaidGuaranteeFee;

    /**
     * 已还资方额外费用记0期
     */
    private BigDecimal alreadyRepaidCapitalFee0;

    /**
     * 已还资方额外费用1
     */
    private BigDecimal alreadyRepaidCapitalFee1;

    /**
     * 已还资方额外费用2
     */
    private BigDecimal alreadyRepaidCapitalFee2;

    /**
     * 已还资方额外费用3
     */
    private BigDecimal alreadyRepaidCapitalFee3;

    /**
     * 已还桔子分润
     */
    private BigDecimal alreadyRepaidJuziProfit;

    /**
     * 其他收入
     */
    private BigDecimal otherIncome;

    /**
     * 结清状态（0：未结清；1：已结清）
     */
    private Integer settleState;

    /**
     * 退货时间
     */
    private Date returnTime;

    /**
     * 理赔状态（0：未理赔；1：已理赔）
     */
    private Integer claimState;

    /**
     * 理赔时间(excel里）
     */
    private Date claimTime;

    /**
     * 理赔操作时间
     */
    private Date claimDay;

    /**
     * 理赔金额
     */
    private BigDecimal claimAmount;

    /**
     * 理赔批次
     */
    private String claimBatch;

    /**
     * 买断时间
     */
    private Date buyoutDay;

    /**
     * 买断金额
     */
    private BigDecimal buyoutMoney;

    /**
     * 买断状态:0未买断;1已买断
     */
    private Integer buyoutState;

    /**
     * 买断批次号
     */
    private String buyoutBatch;

    /**
     * 实际代付金额
     */
    private BigDecimal payMoney;

    /**
     * 代付状态(0 未代付;1 已代付;2 代付失败)
     */
    private Integer payState;

    /**
     * 线下代付时间
     */
    private Date payTime;

    /**
     * 线下代付失败原因
     */
    private String payRemark;

    /**
     * 减免金额
     */
    private BigDecimal reductAmount;

    /**
     * 减免发起时间
     */
    private Date reductDay;

    /**
     * 减免状态(1 审批中;2 已同意;3 已拒绝)
     */
    private Integer reductState;

    /**
     * 减免批次号
     */
    private String reductBatchNum;

    /**
     * 买断原资方.
     */
    private Integer boCapitalSide;

    /**
     * 桔子融单费用
     */
    private BigDecimal juziFinanceFee;

    /**
     * 状态 1*-代偿 2*-理赔 3*-买断 4*-退货 5*-结清
     */
    private Integer commonState;

    /**
     * 数据日期
     */
    private Date commonDay;

    /**
     * 通用金额
     */
    private BigDecimal commonAmount;

    /**
     * 通用说明
     */
    private String commonRemark;

    /**
     * 通用批次
     */
    private String commonBatch;

    /**
     * 资方对客罚息
     */
    private BigDecimal capitalOverdueFee;

    /**
     * 桔子对客罚息与资方对客罚息差值
     */
    private BigDecimal overdueFeeDiffer;


}
